package gvo.basicDatatypes;

import gvo.presets.Presets;

import java.io.Serializable;

/**
*
* @author rene
*/

public class BuchDat implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idBuch;
	private String titel;
	private String reroNr;
	private String reihe;
	private String ortJahr;
	private String isbnPreis;
	private String anmerkung;
	private String kollation;
	private String ausgabeVersion;
	private String signatur;
	private String enthaltenIn;
	private boolean neueSignatur;
	private boolean inBiblio;
	private boolean markiert;
	private String notiz;
	public static final String XMLNAME = "BuchDat";
	public static final String[] Titel={"idBuch","titel","reroNr", "reihe", "ortJahr", "isbnPreis", "anmerkung",
		"kollation", "ausgabeVersion", "signatur", "enthaltenIn", "neueSignatur", "inBiblio", "markiert", "notiz"};
	public static final int IDBUCH = 0;
	public static final int TITEL = 1;
	public static final int RERONR = 2;
	public static final int REIHE = 3;
	public static final int ORTJAHR = 4;
	public static final int ISBNPREIS = 5;
	public static final int ANMERKUNG = 6;
	public static final int KOLLATION = 7;
	public static final int AUSGABEVERSION = 8;
	public static final int SIGNATUR = 9;
	public static final int ENTHALTENIN = 10;
	public static final int NEUESIGNATUR = 11;
	public static final int INBIBLIO = 12;
	public static final int MARKIERT = 13;
	public static final int NOTIZ = 14;
	public boolean isVerified = false;
	public boolean isInDB = false;
   public BuchDat() {
	   this.idBuch = Presets.NOID;
	   this.titel = Presets.EMPTYTXT;
	   this.reroNr = Presets.EMPTYTXT;
	   this.reihe = Presets.EMPTYTXT;
	   this.ortJahr = Presets.EMPTYTXT;
	   this.isbnPreis = Presets.EMPTYTXT;
	   this.anmerkung = Presets.EMPTYTXT;
	   this.kollation = Presets.EMPTYTXT;
	   this.ausgabeVersion = Presets.EMPTYTXT;
	   this.signatur = Presets.EMPTYTXT;
	   this.enthaltenIn = Presets.EMPTYTXT;
	   this.neueSignatur = false;
	   this.inBiblio = false;
	   this.markiert = false;
	   this.notiz = Presets.EMPTYTXT;
   }

    public String info(){
		return String.format("BUCHDAT %5d | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %4b | %4b | %4b | %10.10s ", 
				idBuch, titel, reroNr , reihe, ortJahr, isbnPreis, anmerkung, kollation, ausgabeVersion, signatur, enthaltenIn, neueSignatur, inBiblio, markiert, notiz);
	}
	public static String infoTitel(){
		return String.format("BUCH       %5.5s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %10.10s | %4.4s | %4.4s | %4.4s | %10.10s ", (Object[])Titel);
	}
	public String infoCSV(){
		return String.format("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%b\t%b\t%b\t%s", 
				idBuch, cleanString(titel), cleanString(reroNr) , cleanString(reihe), cleanString(ortJahr),
				cleanString(isbnPreis), cleanString(anmerkung), cleanString(kollation), cleanString(ausgabeVersion), cleanString(signatur), 
				cleanString(enthaltenIn), neueSignatur, inBiblio, markiert, cleanString(notiz));
	}
	public static String infoTitelCSV(){
		return String.format("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s ", (Object[])Titel);
	}
	public String cleanString(String in){
		return in.replaceAll("\n", " ");
	}
   public BuchDat(Integer idBuch) {
       this.idBuch = idBuch;
   }

   public Integer getIdBuch() {
       return idBuch;
   }

   public void setIdBuch(Integer idBuch) {
       this.idBuch = idBuch;
   }

   public boolean isNeueSignatur() {
	return neueSignatur;
   }

   public void setNeueSignatur(boolean neueSignatur) {
	   this.neueSignatur = neueSignatur;
   }

   public boolean isInBiblio() {
	   return inBiblio;
   }

   public void setInBiblio(boolean inBiblio) {
	   this.inBiblio = inBiblio;
   }

   public boolean isMarkiert() {
	   return markiert;
   }

   public void setMarkiert(boolean markiert) {
	   this.markiert = markiert;
   }

public String getTitel() {
       return titel;
   }

   public void setTitel(String titel) {
       this.titel = titel;
   }

   public String getReroNr() {
       return reroNr;
   }

   public void setReroNr(String reroNr) {
       this.reroNr = reroNr;
   }

   public String getReihe() {
       return reihe;
   }

   public void setReihe(String reihe) {
       this.reihe = reihe;
   }

   public String getOrtJahr() {
       return ortJahr;
   }

   public void setOrtJahr(String ortJahr) {
       this.ortJahr = ortJahr;
   }

   public String getIsbnPreis() {
       return isbnPreis;
   }

   public void setIsbnPreis(String isbnPreis) {
       this.isbnPreis = isbnPreis;
   }

   public String getAnmerkung() {
       return anmerkung;
   }
   public void setAnmerkung(String anmerkung) {
       this.anmerkung = anmerkung;
   }
   public String getKollation() {
       return kollation;
   }
   public void setKollation(String kollation) {
       this.kollation = kollation;
   }
   public String getAusgabeVersion() {
       return ausgabeVersion;
   }
   public void setAusgabeVersion(String ausgabeVersion) {
       this.ausgabeVersion = ausgabeVersion;
   }
   public String getNotiz() {
	   return notiz;
   }
   public void setNotiz(String notiz) {
	   this.notiz = notiz;
   }

   public boolean equals(Object object) {
       if (!(object instanceof BuchDat)) {
           return false;
       }
       BuchDat other = (BuchDat) object;
       if (this.idBuch == Presets.NOID){
    	   return false;
       }
       if(this.idBuch == other.idBuch){
    	   return true;
       }
       
       return false;
   }
   @Override
	public int hashCode() {
		int hash = 7;
		hash = 31 * hash + idBuch;
		hash = 31 * hash + (null == titel ? 0 : titel.hashCode());
		return hash;
	}
  
   public String toString() {
       return titel ;
   }

	public String getSignatur() {
		return signatur;
	}

	public void setSignatur(String signatur) {
		this.signatur = signatur;
	}

	public String getEnthaltenIn() {
		return enthaltenIn;
	}

	public void setEnthaltenIn(String enthaltenIn) {
		this.enthaltenIn = enthaltenIn;
	}
	

}
